Portable computing devices such as smart phones, tablet computers, and satellite navigation systems are becoming more prevalent. Comprehensive applications are being created to utilize the capabilities of these portable computing devices. Portable computing devices typically include a touch screen and a multitude of other sensors that allow for interaction between a user and the device.
Touch screens allow a user to make selections or move a cursor by touching the touch screen via a finger or stylus. In general, touch screens can recognize the size, shape and position of the touch and output this information to a host device. The host device may be a handheld computer, tablet computer, or smart phone. Some touch screens recognize single touches, while others can recognize multiple, simultaneous touches.
Touch screens typically include a touch panel, a display screen, and a controller. The touch panel is a clear panel with a touch sensitive surface. The touch panel is positioned in front of the display screen so that the touch sensitive surface covers the viewable area of the display screen. The touch panel registers touches and sends these signals to the controller. The controller processes these signals into data and sends the data to the host device. Any device that houses a touch screen generally provides an Application Programming Interface (API) that programs can call to utilize the data.
Proximity sensors are one type of sensor that can be included on a portable computing device to allow for user interaction with the device. For example, a proximity sensor can detect if a user is touching, or is close to touching the proximity sensor. The maximum distance that a proximity sensor can detect is defined as the “nominal range.” The “nominal range” is sensor-specific and may be adjustable. Generally, data from a proximity sensor is accessed through an API provided with the portable computing device. The data is typically a Boolean value (yes or no) indicating whether the user is within the “nominal range” of the sensor.
Accelerometers and gyroscopes are other types of sensors that can be included on a portable computing device. Accelerometers and gyroscopes can allow a user to interact with the portable computing device by tilting, rotating, or otherwise moving the device. Accelerometers can detect a device's linear acceleration along the x, y and z axes. Gyroscopes can detect a device's angular acceleration around the x, y and z axes permitting precise calculation of pitch, yaw and roll. In general, data from an accelerometer and a gyroscope can be accessed by a program calling an API that is provided with the portable computing device. The data can be raw data from the sensors or data processed by the host device in the form of information regarding the position, rotation rate, direction of gravity, and acceleration of the portable computing device.